#!/user/bin/env python3
# -*- coding: utf-8 -*-

import re

"""
验证输入用户名和qq号是否有效并给出对应的提示信息
要求：
    1.用户名必须由字母、数字、下划线组成，且长度在6~20个字符之间
    2.QQ号是5-12个数字且首位不能为0
"""


def verify():
    username = input("请输入用户名:")
    qq = input("请输入QQ号:")
    # match函数第一个参数时正则表达式字符串或者正则表达式对象
    # 第二个参数时要跟正则表达式匹配的字符串
    m1 = re.match(r'^[0-9a-zA-Z_]{6,20}$', username)
    if not m1:
        print("请重新输入有效的用户名：")
    m2 = re.match(r'^[1-9]\d{5,12}$', qq)
    if not m2:
        print("请输入有效的QQ号:")
    if m1 and m2:
        print("你输入的信息是有效的")


# verify()


"""
    从一串文字中获取手机号码
"""


def get_phone_num():
    # 创建正则表达式对象
    pattern = re.compile(r'(?<=\D)1[34578]\d{9}(?=\D)')
    sentence = """
    重要的事情说8130123456789遍，我的手机号是13512346789这个靓号，
    不是15600998765，也是110或119，王大锤的手机号才是15600998765。
    """
    # 查找所有匹配并保存到一个列表中
    my_list = re.findall(pattern, sentence)
    print(my_list)
    print("===================")
    # 通过迭代器取出匹配对象并获得匹配内容
    for temp in re.finditer(pattern, sentence):
        print(temp.group())
    print("====================")
    # 通过search函数指定搜索位置找出所有匹配
    m = pattern.search(sentence)
    while m:
        print(m.group())
        m = pattern.search(sentence, m.end())


# get_phone_num()


# 替换中文字符中不良的内容
def remove_bad():
    sentence = "你丫是傻叉吗? 我操你大爷的. Fuck you."
    purified = re.sub('[操肏艹]|fuck|shit|傻[比逼叉缺吊屌]|煞笔',
                      '*', sentence, flags=re.IGNORECASE)
    print(purified)


remove_bad()
